# bitwise_and	&	计算数组元素之间的按位与运算。
# bitwise_or	|	计算数组元素之间的按位或运算。
# invert        ~	计算数组元素之间的按位取反运算。
# left_shift	<<	将二进制数的位数向左移。
# right_shift	>>	将二进制数的位数向右移。

import numpy as np

a = 10
b = 12
print("a的二进制数:", bin(a))  # 0b1010
print("b的二进制数:", bin(b))  # 0b1100
print("将a与b执行按位与操作:", np.bitwise_and(a, b))  # 8
print(np.bitwise_or(13, 17))  # 29

# 数据类型为无符号整型uint8
arr = np.array([20], dtype=np.uint8)
print("二进制表示:", np.binary_repr(20, 8))  # 00010100
print(np.invert(arr))  # 235
print("二进制表示: ", np.binary_repr(235, 8))  # 11101011

# 移动三位后的输出值
print(np.left_shift(20, 3))  # 160
# 打印移动后20的二进制数
print(np.binary_repr(20, width=8))  # 00010100
# 函数返回值的二进制数
print(np.binary_repr(160, width=8))  # 10100000

# 将40右移两位后返回值：
print(np.right_shift(40, 2))  # 10
# 移动后40的二进制数：
print(np.binary_repr(40, width=8))  # 00101000
# 移动后返回值的二进制数：
print(np.binary_repr(10, width=8))  # 00001010
